package com.cn.learn.jpa.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @ClassName FileUtil
 * @Description TODO
 * @Author JiJiang
 * @Date 2022/9/17 13:24
 * @Version 1.0
 */

public class FileUtil {


    public static void saveFileFromByteStream(FileInputStream inputStream, File file) throws IOException {

        //文件对象不存在
        if (!file.exists()) {

            if (!file.getParentFile().exists()) {
                file.getParentFile().mkdirs();
            }
            //创建文件对象
            file.createNewFile();
        }

        //设置1M的字节缓冲区
        byte[] buffer = new byte[1024];

        //存放实际读到的字节个数
        int len = 0;

        //创建字节输出流对象 -->将内存的数据读取到文件对象中
        FileOutputStream fileOutputStream = new FileOutputStream(file);

        //当还能读取到字节数时
        while ((len = inputStream.read(buffer)) != -1) {
            //将缓冲区的数据读到文件中
            fileOutputStream.write(buffer, 0, len);
        }
        //关闭字节输入流对象
        inputStream.close();

        //关闭字节输出流对象
        fileOutputStream.close();

    }


    public static void saveFileFromByteArr(byte[] data, File file) throws IOException {


        //文件对象不存在
        if (!file.exists()) {

            if (!file.getParentFile().exists()) {
                file.getParentFile().mkdirs();
            }
            //创建文件对象
            file.createNewFile();
        }
        //创建字节输出流对象 -->将内存的数据读取到文件对象中
        FileOutputStream fileOutputStream = new FileOutputStream(file);

        fileOutputStream.write(data);

        fileOutputStream.close();

    }


}
